<?php

namespace App\Http\Controllers;

use App\Http\Resources\UserResource;
use App\Models\Config;
use App\Models\Live;
use App\Models\User;
use App\Services\ConfigService;
use App\Services\LoginService;
use App\Services\UserService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Redis;
use Illuminate\Support\Str;

// 直播间控制器
class LiveController extends Controller
{
    // 微信展示页面
    public function show(LoginService $loginService)
    {
        if (is_null(session('wechat.oauth_user'))) { // 如果用户没有给予授权重定向到temp_show中
            return redirect('live/temp_show');
        }

        // 微信用户信息
        $wxUser = session('wechat.oauth_user')['default'];

        // 把微信返回的信息保存, 同时生成令牌
        $user = $loginService->weChatH5Login($wxUser);


        // 获取播放地址
        $HLS = Config::query()->where('key', 'HLS')->first()->value;

        return response()->view('webapp.live', compact('user', 'HLS'));
    }

    // 普通浏览器界面, 分配一个游客账号, 游客账号信息都会保存到cookie中
    public function tempShow(Request $request, ConfigService $configService, LoginService $loginService)
    {
        // 生成游客账号
        $user = $loginService->visitorLogin();


        dd($user->toArray());

        // 获取播放地址
        $HLS = $configService->get('HLS', Live::class);

        // 这里返回cookie让服务器比较方便拿到用户数据
        return response()->view('webapp.live', compact('user', 'HLS'))->cookie('live_user', $user);
    }


}
